home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / comm / misc / xprz31.lha / XprZmodem / Xproto.h < prev    next >
C/C++ Source or Header  |  1993-08-17  |  5KB  |  172 lines

  1. /** xproto.h
  2.  *
  3.  *   Include file for External Protocol Handling
  4.  *
  5.  **/
  6. /*
  7.    *   The structure
  8.  */
  9. struct XPR_IO
  10.   {
  11.     /* File name(s) */
  12.     char *xpr_filename;
  13.     /* Open file */
  14.     long (*__asm xpr_fopen) (register __a0 char *filename,
  15.                  register __a1 char *accessmode);
  16.     /* Close file */
  17.     long (*__asm xpr_fclose) (register __a0 long filepointer);
  18.     /* Get char from file */
  19.     long (*__asm xpr_fread) (register __a0 char *buffer,
  20.                  register __d0 long size,
  21.                  register __d1 long count,
  22.                  register __a1 long fileptr);
  23.     /* Put string to file */
  24.     long (*__asm xpr_fwrite) (register __a0 char *buffer,
  25.                   register __d0 long size,
  26.                   register __d1 long count,
  27.                   register __a1 long fileptr);
  28.     /* Get char from serial */
  29.     long (*__asm xpr_sread) (register __a0 char *buffer,
  30.                  register __d0 long size,
  31.                  register __d1 long timeout);
  32.     /* Put string to serial */
  33.     long (*__asm xpr_swrite) (register __a0 char *buffer,
  34.                   register __d0 long size);
  35.     /* Flush serial input buffer */
  36.     long (*xpr_sflush) (void);
  37.     /* Print stuff */
  38.     long (*__asm xpr_update) (register __a0
  39.                   struct XPR_UPDATE * updatestruct);
  40.     /* Check for abort */
  41.     long (*xpr_chkabort) (void);
  42.     /* Check misc. stuff */
  43.     void (*xpr_chkmisc) (void);
  44.     /* Get string interactively */
  45.     long (*__asm xpr_gets) (register __a0 char *prompt,
  46.                 register __a1 char *buffer);
  47.     /* Set and Get serial info */
  48.     long (*__asm xpr_setserial) (register __d0 long newstatus);
  49.     /* Find first file name */
  50.     long (*__asm xpr_ffirst) (register __a0 char *buffer,
  51.                   register __a1 char *pattern);
  52.     /* Find next file name */
  53.     long (*__asm xpr_fnext) (register __d0 long oldstate,
  54.                  register __a0 char *buffer,
  55.                  register __a1 char *pattern);
  56.     /* Return file info */
  57.     long (*__asm xpr_finfo) (register __a0 char *filename,
  58.                  register __d0 long typeofinfo);
  59.     /* Seek in a file */
  60.     long (*__asm xpr_fseek) (register __a0 long fileptr,
  61.                  register __d0 long offset,
  62.                  register __d1 long origin);
  63.     /* Number of extensions */
  64.     long xpr_extension;
  65.     /* Initialized by Setup. */
  66.     long *xpr_data;
  67.     /* Multiple XPR options. */
  68.     long (*__asm xpr_options) (register __d0 long n,
  69.                    register __a0
  70.                    struct xpr_option ** opt);
  71.     /* Delete a file. */
  72.     long (*__asm xpr_unlink) (register __a0 char *filename);
  73.     /* Query serial device */
  74.     long (*xpr_squery) (void);
  75.     /* Get various host ptrs */
  76.     long (*__asm xpr_getptr) (register __d0 long type);
  77.   };
  78. /*
  79.    *   Number of defined extensions
  80.  */
  81. #define XPR_EXTENSION 4L
  82.  
  83. /*
  84.    *   The functions
  85.  */
  86. #ifndef LATTICE
  87. extern long XProtocolSend (), XProtocolReceive (), XProtocolSetup (), XProtocolCleanup ();
  88. #endif
  89. /*
  90.    *   Flags returned by XProtocolSetup()
  91.  */
  92. #define XPRS_FAILURE    0x00000000L
  93. #define XPRS_SUCCESS    0x00000001L
  94. #define XPRS_NORECREQ    0x00000002L
  95. #define XPRS_NOSNDREQ    0x00000004L
  96. #define XPRS_HOSTMON    0x00000008L
  97. #define XPRS_USERMON    0x00000010L
  98. #define XPRS_HOSTNOWAIT 0x00000020L
  99. /*
  100.    *   The update structure
  101.  */
  102. struct XPR_UPDATE
  103.   {
  104.     long xpru_updatemask;
  105.     char *xpru_protocol;
  106.     char *xpru_filename;
  107.     long xpru_filesize;
  108.     char *xpru_msg;
  109.     char *xpru_errormsg;
  110.     long xpru_blocks;
  111.     long xpru_blocksize;
  112.     long xpru_bytes;
  113.     long xpru_errors;
  114.     long xpru_timeouts;
  115.     long xpru_packettype;
  116.     long xpru_packetdelay;
  117.     long xpru_chardelay;
  118.     char *xpru_blockcheck;
  119.     char *xpru_expecttime;
  120.     char *xpru_elapsedtime;
  121.     long xpru_datarate;
  122.     long xpru_reserved1;
  123.     long xpru_reserved2;
  124.     long xpru_reserved3;
  125.     long xpru_reserved4;
  126.     long xpru_reserved5;
  127.   };
  128. /*
  129.    *   The possible bit values for the xpru_updatemask are:
  130.  */
  131. #define XPRU_PROTOCOL        0x00000001L
  132. #define XPRU_FILENAME        0x00000002L
  133. #define XPRU_FILESIZE        0x00000004L
  134. #define XPRU_MSG        0x00000008L
  135. #define XPRU_ERRORMSG        0x00000010L
  136. #define XPRU_BLOCKS        0x00000020L
  137. #define XPRU_BLOCKSIZE        0x00000040L
  138. #define XPRU_BYTES        0x00000080L
  139. #define XPRU_ERRORS        0x00000100L
  140. #define XPRU_TIMEOUTS        0x00000200L
  141. #define XPRU_PACKETTYPE     0x00000400L
  142. #define XPRU_PACKETDELAY    0x00000800L
  143. #define XPRU_CHARDELAY        0x00001000L
  144. #define XPRU_BLOCKCHECK     0x00002000L
  145. #define XPRU_EXPECTTIME     0x00004000L
  146. #define XPRU_ELAPSEDTIME    0x00008000L
  147. #define XPRU_DATARATE        0x00010000L
  148. #define XPRU_RESERVED1        0x00020000L
  149. #define XPRU_RESERVED2        0x00040000L
  150. #define XPRU_RESERVED3        0x00080000L
  151. #define XPRU_RESERVED4        0x00100000L
  152. #define XPRU_RESERVED5        0x00200000L
  153. /*
  154.    *   The xpro_option structure
  155.  */
  156. struct xpr_option
  157.   {
  158.     char *xpro_description;    /* description of the option                  */
  159.     long xpro_type;        /* type of option                             */
  160.     char *xpro_value;        /* pointer to a buffer with the current value */
  161.     long xpro_length;        /* buffer size                                */
  162.   };
  163. /*
  164.    *   Valid values for xpro_type are:
  165.  */
  166. #define XPRO_BOOLEAN 1L        /* xpro_value is "yes", "no", "on" or "off"   */
  167. #define XPRO_LONG    2L        /* xpro_value is string representing a number */
  168. #define XPRO_STRING  3L        /* xpro_value is a string               */
  169. #define XPRO_HEADER  4L        /* xpro_value is ignored                */
  170. #define XPRO_COMMAND 5L        /* xpro_value is ignored                */
  171. #define XPRO_COMMPAR 6L        /* xpro_value contains command parameters     */
  172.